perm filename ALLOC.PAL[11,HE] blob sn#656301 filedate 1982-04-29 generic text, type T, neo UTF8
; Copyright Xerox Corporation 1979

.TITLE ALLOC 
; Code generated from ALLOC.BPL

.CSECT GLOBAL
G=.

.CSECT

; ENTRY POINT TO INITIALIZEZONE
LA1:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV %3,-(5)
	CLR -8.(0)
	CLR -10.(0)
	MOV -2.(0),%1
	ASL %1
	MOV -6.(0),(1)
	MOV -2.(0),%1
	ASL %1
	TST (1)
	BNE LA7
	MOV -2.(0),%1
	ASL %1
	MOV G+212.,(1)
LA7:
	MOV -2.(0),%1
	INC %1
	MOV %1,-8.(0)
	MOV -8.(0),%1
	ASL %1
	CLR (1)
	MOV -8.(0),%1
	ASL %1
	MOV -8.(0),2.(1)
	MOV -8.(0),%1
	ASL %1
	MOV -8.(0),4.(1)
	MOV -2.(0),%1
	ADD #000007,%1
	MOV %1,-10.(0)
	MOV -2.(0),%1
	ASL %1
	MOV -10.(0),8.(1)
	MOV -4.(0),%1
	SUB #000007,%1
	MOV %1,%3
	MOV -10.(0),%2
	MOV -2.(0),%1
	JSR %7,@G+262.
	000014
	MOV -2.(0),%1
	BR LA6
LA6:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO ADDTOZONE
LA2:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV %3,-(5)
	MOV -6.(0),%1
	DEC %1
	MOV %1,-8.(0)
	MOV -8.(0),%1
	ADD -4.(0),%1
	ASL %1
	MOV #177777,(1)
	MOV -8.(0),%1
	NEG %1
	MOV -4.(0),%2
	ASL %2
	MOV %1,(2)
	MOV -4.(0),%1
	INC %1
	MOV %1,%2
	MOV -2.(0),%1
	JSR %7,@G+258.
	000012
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5

LA5:
	JMP MA5

; ENTRY POINT TO ALLOCATE
LA3:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	CLR -6.(0)
	CLR -8.(0)
	CLR -10.(0)
	MOV #100000,-12.(0)
	MOV #077777,%2
	MOV -4.(0),%1
	JSR %7,@G+214.
	000016
	TST %1
	BLE LA9
	MOV #003415,%2
	MOV -2.(0),%1
	JSR %7,@G+212.
	000016
LA9:
	MOV -4.(0),%1
	INC %1
	MOV %1,-6.(0)
	CMP -6.(0),#000003
	BGE LA10
	MOV #000003,-6.(0)
LA10:
	MOV -2.(0),%1
	ASL %1
	MOV 8.(1),-8.(0)
	MOV -8.(0),-10.(0)
LA11:
	CLR -14.(0)
	CLR -16.(0)
	CLR -18.(0)
	CLR -20.(0)
LA12:
	MOV -8.(0),%1
	ASL %1
	MOV (1),%1
	ADD -8.(0),%1
	MOV %1,-14.(0)
	MOV -14.(0),%1
	ASL %1
	TST (1)
	BGT LA13
	BR LA14
LA13:
	CMP -10.(0),-14.(0)
	BNE LA15
	MOV -14.(0),%1
	ASL %1
	MOV 2.(1),-10.(0)
LA15:
	MOV -14.(0),%1
	ASL %1
	MOV -14.(0),%2
	ASL %2
	MOV 2.(2),%2
	ASL %2
	MOV 4.(1),4.(2)
	MOV -14.(0),%1
	ASL %1
	MOV -14.(0),%2
	ASL %2
	MOV 4.(2),%2
	ASL %2
	MOV 2.(1),2.(2)
	MOV -8.(0),%1
	ASL %1
	MOV -14.(0),%2
	ASL %2
	MOV (1),%1
	ADD (2),%1
	MOV -8.(0),%2
	ASL %2
	MOV %1,(2)
	BR LA12
LA14:
	MOV -14.(0),%1
	SUB -6.(0),%1
	MOV %1,-16.(0)
	MOV -16.(0),%1
	SUB -8.(0),%1
	MOV %1,-18.(0)
	CMP -18.(0),-12.(0)
	BLE LA16
	MOV -18.(0),-12.(0)
LA16:
	TST -18.(0)
	BGE LA17
	MOV -8.(0),%1
	ASL %1

	MOV 2.(1),-8.(0)
	BR LA18
LA17:
	CMP -18.(0),#000003
	BLT LA19
	MOV -8.(0),%1
	ASL %1
	MOV -18.(0),(1)
	MOV -2.(0),%1
	ASL %1
	MOV -8.(0),8.(1)
	MOV -6.(0),%1
	NEG %1
	MOV -16.(0),%2
	ASL %2
	MOV %1,(2)
	BR LA20
LA19:
	MOV -8.(0),%1
	ASL %1
	MOV -8.(0),%2
	ASL %2
	MOV 2.(2),%2
	ASL %2
	MOV 4.(1),4.(2)
	MOV -8.(0),%1
	ASL %1
	MOV -8.(0),%2
	ASL %2
	MOV 4.(2),%2
	ASL %2
	MOV 2.(1),2.(2)
	MOV -8.(0),%1
	ASL %1
	MOV -2.(0),%2
	ASL %2
	MOV 2.(1),8.(2)
	MOV -8.(0),-16.(0)
	MOV -16.(0),%1
	ASL %1
	MOV (1),%1
	NEG %1
	MOV -16.(0),%2
	ASL %2
	MOV %1,(2)
LA20:
	MOV -16.(0),%1
	INC %1
	MOV %1,-20.(0)
	MOV -20.(0),%1
	BR LA8
LA18:
	CMP -10.(0),-8.(0)
	BEQ LA999
	JMP LA11
LA999:
	MOV -2.(0),%1
	ASL %1
	MOV -8.(0),8.(1)
	MOV -2.(0),%1
	ASL %1
	TST (1)
	BNE LA21
	CLR %1
	BR LA8
LA21:
	MOV -4.(0),%3
	MOV #003411,%2
	MOV -2.(0),%1
	JSR %7,@#000000
	000016
	ADD -2.(0),%1
	ASL %1
	MOV (1),%1
	BR LA8
LA8:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO FREE
LA4:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	CLR -6.(0)
	CLR -8.(0)
	MOV -4.(0),%1
	ASL %1
	TST -2.(1)
	BNE LA22
	DEC -4.(0)
LA22:
	DEC -4.(0)
	MOV -2.(0),%1
	INC %1
	MOV %1,-6.(0)
	MOV -4.(0),%1
	ASL %1
	MOV (1),%1
	NEG %1
	MOV -4.(0),%2
	ASL %2
	MOV %1,(2)
	MOV -6.(0),%1
	ASL %1
	MOV 2.(1),-8.(0)
	MOV -4.(0),%1
	ASL %1
	MOV -6.(0),4.(1)
	MOV -4.(0),%1
	ASL %1
	MOV -8.(0),2.(1)
	MOV -6.(0),%1
	ASL %1
	MOV -4.(0),2.(1)
	MOV -8.(0),%1
	ASL %1
	MOV -4.(0),4.(1)
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5

MA5:

.CSECT GLOBAL

	.=G+260.
	LA1
	.=G+262.
	LA2
	.=G+256.
	LA3
	.=G+258.
	LA4

.CSECT



.END